﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TOAcademias;

namespace DAOAcademias
{

    /*************************************
    Autor: Carlos Sánchez
    Fecha de Creación: 06/02/2011
    Descripción de la Funcionalidad: Clase que contiene metodos que serviran para dar
    soporte a los registros de la entidad Clases.
    **************************************/

    public class DOClases
    {
        DBModuloAcademiasDataContext dbml;

        public DOClases()
        {
            dbml = new DBModuloAcademiasDataContext();
        }

        public List<TOClase> obtenerClasesXSeccion(String codigoSeccion)
        {

            List<TOClase> listaClases = new List<TOClase>();
            
            
            var clases = (from clase in dbml.CLASESs
                          where clase.COD_SECCION == codigoSeccion
                          orderby clase.FEC_CLASE
                           select clase 
                             ) ;

            foreach (var clase in clases) {

                TOClase toClase = new TOClase();
                toClase.Cod_Clase = clase.COD_CLASE;
                toClase.Cod_Seccion = clase.COD_SECCION;
                toClase.Fecha = clase.FEC_CLASE;
                toClase.Recurso = clase.REC_CLASE;
                if (1 == DateTime.Now.CompareTo(toClase.Fecha))
                {
                    toClase.Pendiente = false;
                }
                else
                {

                    toClase.Pendiente = true;
                }
                listaClases.Add(toClase);
            
            }

            return listaClases;
        }

        public List<TOClase> obtenerClases()
        {

            List<TOClase> listaClases = new List<TOClase>();



            var clases = (from clase in dbml.CLASESs
                          select clase
                             );

            foreach (var clase in clases)
            {

                TOClase toClase = new TOClase();
                toClase.Cod_Clase = clase.COD_CLASE;
                toClase.Cod_Seccion = clase.COD_SECCION;
                toClase.Fecha = clase.FEC_CLASE;
                toClase.Recurso = clase.REC_CLASE;
                                listaClases.Add(toClase);

            }

            return listaClases;
        }

   

        public void insertarClase(TOClase toClase)
        {
            List<TOClase> listaClases= obtenerClases();

            int intAux = 0;
            int intTemp=0;
            foreach (TOClase clase in listaClases)
            {

                intTemp=Convert.ToInt32(clase.Cod_Clase.Substring(1));
                if (intTemp > intAux) {

                    intAux = intTemp;
                }
                

            }
            intAux = intAux + 1;

            string strCodigo = ""+intAux;

            strCodigo = "C0000".Substring(0, 5 - strCodigo.Length)+intAux;



            CLASES cls = new CLASES();
            cls.COD_CLASE = strCodigo;
            cls.COD_SECCION = toClase.Cod_Seccion;
            cls.FEC_CLASE = toClase.Fecha;
            cls.REC_CLASE = toClase.Recurso;

            dbml.CLASESs.InsertOnSubmit(cls);
            dbml.SubmitChanges();

            
        }

        public void modificarClase(TOClase toClase)
        {
            var clases = (from clase in dbml.CLASESs
                         where clase.COD_CLASE == toClase.Cod_Clase
                         select clase).Single();

            clases.REC_CLASE = toClase.Recurso;
          
            dbml.SubmitChanges();

        }

        public void eliminarClasexSeccion(String codSeccion, int dia)
        {
            var clases = (from clase in dbml.CLASESs
                          where clase.COD_SECCION == codSeccion && clase.FEC_CLASE.DayOfWeek==(DayOfWeek)dia
                          select clase);

            dbml.CLASESs.DeleteAllOnSubmit(clases);

            dbml.SubmitChanges();

        }

    }
}
